package Point;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Random;

public class Point {
    int x,y;
    Point(){
        this(0);
    }
    Point( int x){
        this(x,0);
    }
    Point(int x,int y){
        this.x=x;
        this.y=y;
    }
    public  String toString(){
        return String.format("(%d,%d)",x,y);
    }
    /*class Mycomp implements Comparator<Point>{
        public int compare(Point o1, Point o2){
            return o1.x-o2.x;
        }
    }*/
}

/*构造方法中的this关键字
        构造方法是一个类的对象在通过new关键字创建时自动调用的，在程序中不能向调用其他方法一样通过方法名（也就是类名）来调用。但如果一个类有多个构造方法，可以在一个构造方法中通过this(paras…)来调用其他的构造方法。
        使用this来调用其他构造方法有如下几个约束。
        1) 只能在构造方法中通过this来调用其他构造方法，普通方法中不能使用。
        2) 不能通过this递归调用构造方法，即不能在一个构造方法中通过this直接或间接调用该构造方法本身。
        例如：
class test {
    ddd() {
        this(1);
    }
  ddd(int a){
        this();
    }
    ddd(int a, int b) {
        this(1, 2);
    }
}
        ddd()方法中调用了ddd(int)构造方法，而ddd(int)构造方法又调用了ddd()构造方法，构成递归调用。ddd(int, int)中调用了自身，也构成了递归调用。都是不允许的。
        3) 通过this调用其他构造方法必须放在构造方法的第一行中执行。由于super调用父类的构造函数也必须放在构造方法的第一行中执行，因此，通过this和super调用构造方法不能同时出现一个构造方法中。也不能在一个构造方法中多次调用不同的构造方法。
        在构造方法中也可以使用this关键字来访问本类中的成员变量和成员函数。其用法和非构造方法中的this关键字相同。
  */